<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>18.5. Using Google Documents List Data API</title>
<link rel="stylesheet" href="dbstyle.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="Programmer's Reference Guide">
<link rel="up" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="prev" href="zend.gdata.calendar.html" title="18.4. Using Google Calendar">
<link rel="next" href="zend.gdata.spreadsheets.html" title="18.6. Using Google Spreadsheets">
<link rel="chapter" href="introduction.html" title="Chapter 1. Introduction to Zend Framework">
<link rel="chapter" href="zend.acl.html" title="Chapter 2. Zend_Acl">
<link rel="chapter" href="zend.auth.html" title="Chapter 3. Zend_Auth">
<link rel="chapter" href="zend.cache.html" title="Chapter 4. Zend_Cache">
<link rel="chapter" href="zend.config.html" title="Chapter 5. Zend_Config">
<link rel="chapter" href="zend.console.getopt.html" title="Chapter 6. Zend_Console_Getopt">
<link rel="chapter" href="zend.controller.html" title="Chapter 7. Zend_Controller">
<link rel="chapter" href="zend.currency.html" title="Chapter 8. Zend_Currency">
<link rel="chapter" href="zend.date.html" title="Chapter 9. Zend_Date">
<link rel="chapter" href="zend.db.html" title="Chapter 10. Zend_Db">
<link rel="chapter" href="zend.debug.html" title="Chapter 11. Zend_Debug">
<link rel="chapter" href="zend.dojo.html" title="Chapter 12. Zend_Dojo">
<link rel="chapter" href="zend.dom.html" title="Chapter 13. Zend_Dom">
<link rel="chapter" href="zend.exception.html" title="Chapter 14. Zend_Exception">
<link rel="chapter" href="zend.feed.html" title="Chapter 15. Zend_Feed">
<link rel="chapter" href="zend.filter.html" title="Chapter 16. Zend_Filter">
<link rel="chapter" href="zend.form.html" title="Chapter 17. Zend_Form">
<link rel="chapter" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="chapter" href="zend.http.html" title="Chapter 19. Zend_Http">
<link rel="chapter" href="zend.infocard.html" title="Chapter 20. Zend_InfoCard">
<link rel="chapter" href="zend.json.html" title="Chapter 21. Zend_Json">
<link rel="chapter" href="zend.layout.html" title="Chapter 22. Zend_Layout">
<link rel="chapter" href="zend.ldap.html" title="Chapter 23. Zend_Ldap">
<link rel="chapter" href="zend.loader.html" title="Chapter 24. Zend_Loader">
<link rel="chapter" href="zend.locale.html" title="Chapter 25. Zend_Locale">
<link rel="chapter" href="zend.log.html" title="Chapter 26. Zend_Log">
<link rel="chapter" href="zend.mail.html" title="Chapter 27. Zend_Mail">
<link rel="chapter" href="zend.measure.html" title="Chapter 28. Zend_Measure">
<link rel="chapter" href="zend.memory.html" title="Chapter 29. Zend_Memory">
<link rel="chapter" href="zend.mime.html" title="Chapter 30. Zend_Mime">
<link rel="chapter" href="zend.openid.html" title="Chapter 31. Zend_OpenId">
<link rel="chapter" href="zend.paginator.html" title="Chapter 32. Zend_Paginator">
<link rel="chapter" href="zend.pdf.html" title="Chapter 33. Zend_Pdf">
<link rel="chapter" href="zend.registry.html" title="Chapter 34. Zend_Registry">
<link rel="chapter" href="zend.rest.html" title="Chapter 35. Zend_Rest">
<link rel="chapter" href="zend.search.lucene.html" title="Chapter 36. Zend_Search_Lucene">
<link rel="chapter" href="zend.server.html" title="Chapter 37. Zend_Server">
<link rel="chapter" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="chapter" href="zend.session.html" title="Chapter 39. Zend_Session">
<link rel="chapter" href="zend.soap.html" title="Chapter 40. Zend_Soap">
<link rel="chapter" href="zend.test.html" title="Chapter 41. Zend_Test">
<link rel="chapter" href="zend.text.html" title="Chapter 42. Zend_Text">
<link rel="chapter" href="zend.timesync.html" title="Chapter 43. Zend_TimeSync">
<link rel="chapter" href="zend.translate.html" title="Chapter 44. Zend_Translate">
<link rel="chapter" href="zend.uri.html" title="Chapter 45. Zend_Uri">
<link rel="chapter" href="zend.validate.html" title="Chapter 46. Zend_Validate">
<link rel="chapter" href="zend.version.html" title="Chapter 47. Zend_Version">
<link rel="chapter" href="zend.view.html" title="Chapter 48. Zend_View">
<link rel="chapter" href="zend.xmlrpc.html" title="Chapter 49. Zend_XmlRpc">
<link rel="appendix" href="requirements.html" title="Appendix A. Zend Framework Requirements">
<link rel="appendix" href="coding-standard.html" title="Appendix B. Zend Framework Coding Standard for PHP">
<link rel="appendix" href="copyrights.html" title="Appendix C. Copyright Information">
<link rel="index" href="the.index.html" title="Index">
<link rel="subsection" href="zend.gdata.docs.html#zend.gdata.docs.listdocuments" title="18.5.1. Get a List of Documents">
<link rel="subsection" href="zend.gdata.docs.html#zend.gdata.docs.creating" title="18.5.2. Upload a Document">
<link rel="subsection" href="zend.gdata.docs.html#zend.gdata.docs.queries" title="18.5.3. Searching the documents feed">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader"><table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">18.5. Using Google Documents List Data API</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="zend.gdata.calendar.html">Prev</a> </td>
<th width="60%" align="center">Chapter 18. Zend_Gdata</th>
<td width="20%" align="right"> <a accesskey="n" href="zend.gdata.spreadsheets.html">Next</a>
</td>
</tr>
</table></div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="zend.gdata.docs"></a>18.5. Using Google Documents List Data API</h2></div></div></div>
<p>
        The Google Documents List Data API allows client applications to 
        upload documents to Google Documents and list them in the form of 
        Google Data API ("GData") feeds. Your client application can request
        a list of a user's documents, and query the content in an existing 
        document.
    </p>
<p>
        See
        <a href="http://code.google.com/apis/documents/overview.html" target="_top">http://code.google.com/apis/documents/overview.html</a>
        for more information about the Google Documents List API.
    </p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.gdata.docs.listdocuments"></a>18.5.1. Get a List of Documents</h3></div></div></div>
<p>
            You can get a list of the Google Documents for a particular user by using
            the <code class="code">getDocumentListFeed</code> method of the docs
            service.  The service will return a
            <code class="code">Zend_Gdata_Docs_DocumentListFeed</code> object
            containing a list of documents associated with the authenticated
            user.
        </p>
<pre class="programlisting">&lt;?php
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$docs = new Zend_Gdata_Docs($client);
$feed = $docs-&gt;getDocumentListFeed();
        </pre>
<p>
        The resulting <code class="code">Zend_Gdata_Docs_DocumentListFeed</code> object 
        represents the response from the server. This feed contains a list of
        <code class="code">Zend_Gdata_Docs_DocumentListEntry</code> objects 
        (<code class="code">$feed-&gt;entries</code>), each of which represents a single 
        Google Document.                                
        </p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.gdata.docs.creating"></a>18.5.2. Upload a Document</h3></div></div></div>
<p>
            You can create a new Google Document by uploading a word
            processing document, spreadsheet, or presentation. This example
            is from the interactive Docs.php sample which comes with the
            library. It demonstrates uploading a file and printing
            information about the result from the server.
        </p>
<pre class="programlisting">&lt;?php
/**
 * Upload the specified document
 *
 * @param Zend_Gdata_Docs $docs The service object to use for communicating
 *     with the Google Documents server.
 * @param boolean $html True if output should be formatted for display in a
 *     web browser.
 * @param string $originalFileName The name of the file to be uploaded. The
 *     mime type of the file is determined from the extension on this file
 *     name. For example, test.csv is uploaded as a comma seperated volume
 *     and converted into a spreadsheet.
 * @param string $temporaryFileLocation (optional) The file in which the
 *     data for the document is stored. This is used when the file has been
 *     uploaded from the client's machine to the server and is stored in
 *     a temporary file which does not have an extension. If this parameter
 *     is null, the file is read from the originalFileName.
 */
function uploadDocument($docs, $html, $originalFileName,
                        $temporaryFileLocation) {
  $fileToUpload = $originalFileName;
  if ($temporaryFileLocation) {
    $fileToUpload = $temporaryFileLocation;
  }

  // Upload the file and convert it into a Google Document. The original
  // file name is used as the title of the document and the mime type
  // is determined based on the extension on the original file name.
  $newDocumentEntry = $docs-&gt;uploadFile($fileToUpload, $originalFileName,
      null, Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

  echo "New Document Title: ";

  if ($html) {
      // Find the URL of the HTML view of this document.
      $alternateLink = '';
      foreach ($newDocumentEntry-&gt;link as $link) {
          if ($link-&gt;getRel() === 'alternate') {
              $alternateLink = $link-&gt;getHref();
          }
      }
      // Make the title link to the document on docs.google.com.
      echo "&lt;a href=\"$alternateLink\"&gt;\n";
  }
  echo $newDocumentEntry-&gt;title."\n";
  if ($html) {echo "&lt;/a&gt;\n";}
}
        </pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.gdata.docs.queries"></a>18.5.3. Searching the documents feed</h3></div></div></div>
<p>
            You can search the Document List using some of the <a href="http://code.google.com/apis/gdata/reference.html#Queries" target="_top">standard
            Google Data API query parameters</a>. Categories are used to 
            restrict the 
            type of document (word processor document, spreadsheet) returned.
            The full-text query string is used to search the content of all 
            the documents. More detailed information on parameters specific 
            to the Documents List can be found in the <a href="http://code.google.com/apis/documents/reference.html#Parameters" target="_top">Documents List Data API Reference Guide</a>.
        </p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="zend.gdata.docs.listwpdocuments"></a>18.5.3.1. Get a List of Word Processing Documents</h4></div></div></div>
<p>
                You can also request a feed containing all of your documents of a specific type. For example, to see a list of your work processing documents, you would perform a category query as follows.
            </p>
<pre class="programlisting">&lt;?php
$feed = $docs-&gt;getDocumentListFeed(
    'http://docs.google.com/feeds/documents/private/full/-/document');
            </pre>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="zend.gdata.docs.listspreadsheets"></a>18.5.3.2. Get a List of Spreadsheets</h4></div></div></div>
<p>
                To request a list of your Google Spreadsheets, use the following category query:
            </p>
<pre class="programlisting">&lt;?php
$feed = $docs-&gt;getDocumentListFeed(
    'http://docs.google.com/feeds/documents/private/full/-/spreadsheet');
            </pre>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="zend.gdata.docs.textquery"></a>18.5.3.3. Performing a text query</h4></div></div></div>
<p>
                You can search the content of documents by using a
                <code class="code">Zend_Gdata_Docs_Query</code> in your request. A Query object
                can be used to construct the query URI, with the search term being
                passed in as a parameter. Here is an example method which queries
                the documents list for documents which contain the search string:
            </p>
<pre class="programlisting">&lt;?php
$docsQuery = new Zend_Gdata_Docs_Query();
$docsQuery-&gt;setQuery($query);
$feed = $client-&gt;getDocumentListFeed($docsQuery);
            </pre>
</div>
</div>
</div>
<div class="navfooter"><table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="zend.gdata.calendar.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="zend.gdata.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="zend.gdata.spreadsheets.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">18.4. Using Google Calendar </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> 18.6. Using Google Spreadsheets</td>
</tr>
</table></div>
<div class="revinfo"></div>
</body>
</html>
